/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package protegido;

import com.opensymphony.xwork2.ActionSupport;
import constantes.FonolConstantes;
import fonol.entidades.Beneficiarios;
import fonol.entidades.Candidatos;
import fonol.entidades.Delegados;
import fonol.entidades.EstatusCandidato;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.logging.Logger;
import org.apache.struts2.interceptor.SessionAware;
import publico.util.PublicoUtil;

/**
 *
 * @author fredfred2
 */
public class EvaluaCandidatos extends ActionSupport implements SessionAware {

    Map session;
    private int estadoElegido;
    private List<EstatusCandidato> estatuses;
    
    private List<Beneficiarios> beneficiariosNuevos;

    public void setSession(Map arg0) {
        session = arg0;
    }

    public int getEstadoElegido() {
        return estadoElegido;
    }

    public void setEstadoElegido(int estadoElegido) {
        this.estadoElegido = estadoElegido;
    }
    private List<Candidatos> candidatos;

    public List<Candidatos> getCandidatos() {
        if (getEstadoElegido() == 0) {
            return new PublicoUtil().regresaCandidatos();
        } else {
            return new PublicoUtil().regresaCandidatosPorEstado(getEstadoElegido());
        }
    }

    @Override
    public String execute() {
        Logger log = Logger.getLogger(EvaluaCandidatos.class.getName());
        log.info("EvaluaCandidatos.execute ");
        Delegados d = (Delegados) session.get(FonolConstantes.OBJETO_USER);
        log.info("EvaluaCandidatos.execute.delegado " + d);
        setEstadoElegido(d.getIdestado().getIdestado());
        setCandidatos(getCandidatos());
        setBeneficiariosNuevos(getBeneficiariosNuevos());
        log.info("EvaluaCandidatos.getBeneficiariosNuevos " + beneficiariosNuevos);
        for(Beneficiarios b:beneficiariosNuevos){
            log.info("b.getIdcandidato();"+b.getCandidatos());
        }
        log.info("EvaluaCandidatos.execute.candidatos " + candidatos);
        return SUCCESS;
    }

    public void setCandidatos(List<Candidatos> candidatos) {
        this.candidatos = candidatos;
    }

    public List<EstatusCandidato> getEstatuses() {
        List<EstatusCandidato> aux = new ArrayList<EstatusCandidato>();
        for (EstatusCandidato e : EstatusCandidato.values()) {
            aux.add(e);
        }
        return aux;
    }

    public void setEstatuses(List<EstatusCandidato> estatuses) {
        this.estatuses = estatuses;
    }

    public List<Beneficiarios> getBeneficiariosNuevos() {
        if (getEstadoElegido() == 0) {
            return new PublicoUtil().regresaNuevosBeneficiarios();
        } else {
            return new PublicoUtil().regresaNuevosBeneficiariosPorEstado(getEstadoElegido());
        }
    }

    public void setBeneficiariosNuevos(List<Beneficiarios> beneficiariosNuevos) {
        this.beneficiariosNuevos = beneficiariosNuevos;
    }
}
